<?php
/**
 *  MyApp_AppObject.php
 */

/**
 *  Ethna_AppObject
 *
 *  @access     public
 *  @package    Smscom
 */
class MyApp_AppObject extends Ethna_AppObject
{
    /**
     *  トランザクションセーフモードの設定（staticコール版）
     *  
     *  単に参照系のDBオブジェクトの変数に、更新形のDBオブジェクトを格納してるだけ…
     *
     *  @access public
     *  @static
     *  @param object  $backend  Ethna_Backendのオブジェクト
     *  @param boolean $on       true:トランザクションセーフモード false:通常モード
     */
    function setTransSafeMode($backend, $on)
    {
        $db =& $backend->getDB('');
        $db_r =& $backend->getDB('r');
        
        if ($on) {
            
            if ($db == $db_r || is_null($db_r))
                return;
            
            $this->orig_db = $db;
            $this->orig_db_r = $db_r;
            
            $db_r = $db;
            
        } else {
            
            if (!empty($this->orig_db_r)) {
                $db_r = $this->orig_db_r;
            }
        }
        
        
    }
    
    /**
     *  DB
     *
     *  @access public
     *  @static
     *  @return mixed   0:正常終了 Ethna_Error:エラー
     */
    function begin($backend)
    {
        
        $db = $backend->getDB();
        $db->db->autoCommit(false);
        return $db->begin();
    }
    
    /**
     *  DB
     *
     *  @access public
     *  @static
     *  @return mixed   0:正常終了 Ethna_Error:エラー
     */
    function rollback($backend, $autocommit = true)
    {
        $db = $backend->getDB();
        $db->db->autoCommit($autocommit);
        return $db->rollback();
    }
    
    /**
     *
     *  @access public
     *  @static
     *  @return mixed   0: Ethna_Error:
     */
    function commit($backend, $autocommit = true)
    {
        $db = $backend->getDB();
        $db->db->autoCommit($autocommit);
        return $db->commit();
    }
}
?>